The recording surface of optical disks, like the recording surface of magnetic disks, is divided into a series of data recording tracks (concentric or spiral) having a common rotational center. Each track is subdivided into sectors; data is typically written to and read from a disk in logical blocks. Hereinafter, the term "block" will refer to the data and the term "sector" will refer to a physical location on a disk to which a single block of data can be written. Data can include directories, volume table of contents and control structures, as well as user or file data (collectively referred to herein as file system data) and maintained by file system software. The logical block structures used by the present invention, however, are implemented and maintained by driver software at a system level below the file system software (through which the user interacts with the system).
Using known processes, certain optical media, such as magneto-optical (MO) and phase change disks, are rewritable but currently require that data previously recorded onto a particular sector of the disk be erased before a new or revised block of data is recorded on that sector. Therefore, writing new or revised data onto a sector of such a disk requires a first rotation or pass of the disk while the sector (containing obsolete data) is erased and a second rotation while the data is written. Verification is generally desired and may require a third rotation.
A significant disadvantage of the erase-before-write procedure is that the integrity of revised data to be written to the disk is jeopardized between the erase pass and the write pass. If, for example, power is lost or the system fails during this time, the data to be written will be lost from the memory of the processor or drive controller, but the original version of the data, just erased from the disk, will also be lost thereby impeding recovery.
The erase-before-write procedure presents an additional disadvantage. In addition to the time delays imposed by the erase, write and verify passes themselves, delays are also incurred while the optical head moves radially inwardly or outwardly seeking the desired track for the erase pass (seek delay) and while the head waits for the desired sector on the track to rotate into position opposite the head for the erase, write and verify operations (latency delay). The three-pass erase-write-verify procedure is typically performed separately for each block of data to be written (or group of blocks destined for contiguous sectors) and seek and latency delays can cause a significant performance degradation.
Solutions to these difficulties have been proposed in which a file control program at the file system level includes a command to pre-erase destination sectors containing original, to-be-revised, data so that the new or revised data is written onto the sector in a two-pass write-verify process. But such a method only reduces the delays; it does nothing to enhance data integrity. Another proposed solution would pre-erase sectors containing obsolete data (but not the sectors containing the original data), write the new or revised data to the erased sectors and then erase the original data. While this method may reduce the risk of data loss, it does nothing to reduce the delays and requires complicated directory maintenance to keep track of multiple versions of data on the same disk. Moreover, solutions of both types can entail substantial development costs, may not fit naturally or transparently into the intended operating system, may not be portable to other environments with different file system semantics and may only protect file data ("user" data) but not system control data.